const http = {
	// baseurl 地址
	baseUrl: "http://123.56.182.108:8080/renren-admin",
	// 请求方法
	request(config) {
		// config： 请求配置对象
		config = beforeRequest(config)
		config.url = this.baseUrl + config.url
		return new Promise((resolve, reject) => {
			uni.request(config)
					.then(res => {
						let [error, resp] = res
						const response = beforeResponse(resp)
						resolve(response)
					})
					.catch(err => {
						errorHandle(err)
						reject(err)
					})
		})
	},
	get(url, data, auth) {
		/*
		 url: 接口地址
		 data: 查询参数
		 auth: 请求是否需要携带token进行认证
		 */
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "GET"
		})
	},
	post(url, data, auth) {
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "POST"
		})
	},
	put(url, data, auth) {
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "PUT"
		})
	},
	delete(url, data, auth) {
		return this.request({
			url: url,
			data: data,
			auth: auth,
			method: "DELETE"
		})
	}
}
// 请求拦截器
const beforeRequest = (config) => {
	// 请求之前的进行的操作
	console.log("请求拦截器：", config)
	config.header = {}
	// 判断该接口请求是否需要携带token
	if (config.auth) {
		if (uni.getStorageSync('token')) {
			// 在请求头中添加token
			config.header['token'] = uni.getStorageSync('token')
		} else {
			// 没有登录，无访问权限，重定向到登录页面
			uni.navigateTo({
				url: '/pages/user/login'
			})
		}
	}
	return config
}

//响应拦截器
const beforeResponse = (response) => {
	console.log('响应拦截器：', response)
	return response
}

// 异常处理器
const errorHandle = (err) => {
	console.log('网络异常，请求失败！',err)
}

export default http